﻿<!DOCTYPE HTML>
<!-- saved from url=(0081)http://172.13.19.31:6060/note_html/服务器/CentOS/100804-网络-telnet、rcp命令.html -->
<!DOCTYPE html PUBLIC "" ""><HTML><HEAD><META content="IE=11.0000" 
http-equiv="X-UA-Compatible">
 
<META http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<TITLE>10804-网络-telnet、rcp命令</TITLE> <LINK href="10804-网络-telnet、rcp命令_files/standalone.css" 
rel="stylesheet"> <LINK href="10804-网络-telnet、rcp命令_files/overlay-apple.css" 
rel="stylesheet"> <LINK href="10804-网络-telnet、rcp命令_files/article_edit.css" rel="stylesheet"> 
<STYLE type="text/css">
	#content{
		margin: 5px 10px;
	}
</STYLE>
	 <!-- 代码高亮 -->	 <LINK href="10804-网络-telnet、rcp命令_files/shCoreEclipse.css" rel="stylesheet">
	 <LINK href="10804-网络-telnet、rcp命令_files/my-highlighter.css" rel="stylesheet"> 
<META name="GENERATOR" content="MSHTML 11.00.10586.545"></HEAD> 
<BODY>
<DIV id="content">
<H1 align="center">10804-网络-telnet、rcp命令</H1>
<P align="right" 
style="margin: 0px 10px 0px 0px; padding: 0px;">最后修改时间：2015-08-14 10:32:54</P>
<HR style="border-width: 2px; border-color: lime;">

<H3>telnet命令</H3>
<H4>命令说明</H4>
<PRE class="brush: bash;">telnet命令通常用来远程登录。telnet程序是基于TELNET协议的远程登录客户端程序。Telnet协议是TCP/IP协议族中的一员，是Internet远程登陆服务的标准协议和主要方式。
它为用户提供了在本地计算机上完成远程主机工作的 能力。在终端使用者的电脑上使用telnet程序，用它连接到服务器。终端使用者可以在telnet程序中输入命令，
这些命令会在服务器上运行，就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个 telnet会话，必须输入用户名和密码来登录服务器。
Telnet是常用的远程控制Web服务器的方法。

　　但是，telnet因为采用明文传送报文，安全性不好，很多Linux服务器都不开放telnet服务，而改用更安全的ssh方式了。但仍然有很多别的系统可能采用了
telnet方式来提供远程登录，因此弄清楚telnet客户端的使用方式仍是很有必要的。

telnet命令还可做别的用途，比如确定远程服务的状态，比如确定远程服务器的某个端口是否能访问。

1．命令格式：

telnet[参数][主机]

2．命令功能：

执行telnet指令开启终端机阶段作业，并登入远端主机。

3．命令参数：

-8 允许使用8位字符资料，包括输入与输出。

-a 尝试自动登入远端系统。

-b&lt;主机别名&gt; 使用别名指定远端主机名称。

-c 不读取用户专属目录里的.telnetrc文件。

-d 启动排错模式。

-e&lt;脱离字符&gt; 设置脱离字符。

-E 滤除脱离字符。

-f 此参数的效果和指定"-F"参数相同。

-F 使用Kerberos V5认证时，加上此参数可把本地主机的认证数据上传到远端主机。

-k&lt;域名&gt; 使用Kerberos认证时，加上此参数让远端主机采用指定的领域名，而非该主机的域名。

-K 不自动登入远端主机。

-l&lt;用户名称&gt; 指定要登入远端主机的用户名称。

-L 允许输出8位字符资料。

-n&lt;记录文件&gt; 指定文件记录相关信息。

-r 使用类似rlogin指令的用户界面。

-S&lt;服务类型&gt; 设置telnet连线所需的IP TOS信息。

-x 假设主机有支持数据加密的功能，就使用它。

-X&lt;认证形态&gt; 关闭指定的认证形态。
</PRE>
<H4>使用实例</H4>
<PRE class="brush: bash;">实例1：远程服务器无法访问

命令：

telnet 192.168.120.206

输出：

[root@localhost ~]# telnet 192.168.120.209
Trying 192.168.120.209...
telnet: connect to address 192.168.120.209: No route to host
telnet: Unable to connect to remote host: No route to host
[root@localhost ~]# 

说明：

处理这种情况方法：

（1）确认ip地址是否正确？

（2）确认ip地址对应的主机是否已经开机？

（3）如果主机已经启动，确认路由设置是否设置正确？（使用route命令查看）

（4）如果主机已经启动，确认主机上是否开启了telnet服务？（使用netstat命令查看，TCP的23端口是否有LISTEN状态的行）

（5）如果主机已经启动telnet服务，确认防火墙是否放开了23端口的访问？（使用iptables-save查看）

实例2：域名无法解析

命令：

telnet www.baidu.com

输出：

[root@localhost ~]# telnet www.baidu.com
www.baidu.com/telnet: Temporary failure in name resolution
[root@localhost ~]# 

说明：

处理这种情况方法：

（1）确认域名是否正确

（2）确认本机的域名解析有关的设置是否正确（/etc/resolv.conf中nameserver的设置是否正确，如果没有，可以使用nameserver 8.8.8.8）

（3）确认防火墙是否放开了UDP53端口的访问（DNS使用UDP协议，端口53，使用iptables-save查看）

实例3：

命令：

输出：

[root@localhost ~]# telnet 192.168.120.206
Trying 192.168.120.206...
telnet: connect to address 192.168.120.206: Connection refused
telnet: Unable to connect to remote host: Connection refused
[root@localhost ~]#

说明：

处理这种情况：

（1）确认ip地址或者主机名是否正确？

（2）确认端口是否正确，是否默认的23端口

实例4：启动telnet服务

命令：

service xinetd restart

输出：

复制代码
[root@localhost ~]# cd /etc/xinetd.d/
[root@localhost xinetd.d]# ll
总计 124
-rw-r--r-- 1 root root 1157 2011-05-31 chargen-dgram
-rw-r--r-- 1 root root 1159 2011-05-31 chargen-stream
-rw-r--r-- 1 root root  523 2009-09-04 cvs
-rw-r--r-- 1 root root 1157 2011-05-31 daytime-dgram
-rw-r--r-- 1 root root 1159 2011-05-31 daytime-stream
-rw-r--r-- 1 root root 1157 2011-05-31 discard-dgram
-rw-r--r-- 1 root root 1159 2011-05-31 discard-stream
-rw-r--r-- 1 root root 1148 2011-05-31 echo-dgram
-rw-r--r-- 1 root root 1150 2011-05-31 echo-stream
-rw-r--r-- 1 root root  323 2004-09-09 eklogin
-rw-r--r-- 1 root root  347 2005-09-06 ekrb5-telnet
-rw-r--r-- 1 root root  326 2004-09-09 gssftp
-rw-r--r-- 1 root root  310 2004-09-09 klogin
-rw-r--r-- 1 root root  323 2004-09-09 krb5-telnet
-rw-r--r-- 1 root root  308 2004-09-09 kshell
-rw-r--r-- 1 root root  317 2004-09-09 rsync
-rw-r--r-- 1 root root 1212 2011-05-31 tcpmux-server
-rw-r--r-- 1 root root 1149 2011-05-31 time-dgram
-rw-r--r-- 1 root root 1150 2011-05-31 time-stream
[root@localhost xinetd.d]# cat krb5-telnet 
# default: off
# description: The kerberized telnet server accepts normal telnet sessions, \
#              but can also use Kerberos 5 authentication.
service telnet
{
        flags           = REUSE
        socket_type     = stream        
        wait            = no
        user            = root
        server          = /usr/kerberos/sbin/telnetd
        log_on_failure  += USERID
        disable         = yes
}
[root@localhost xinetd.d]# 
复制代码

说明：

配置参数，通常的配置如下： 

service telnet 

{ 

disable = no #启用 

flags = REUSE #socket可重用 

socket_type = stream #连接方式为TCP 

wait = no #为每个请求启动一个进程 

user = root #启动服务的用户为root 

server = /usr/sbin/in.telnetd #要激活的进程 

log_on_failure += USERID #登录失败时记录登录用户名 

} 

如果要配置允许登录的客户端列表，加入 

only_from = 192.168.0.2 #只允许192.168.0.2登录 

如果要配置禁止登录的客户端列表，加入 

no_access = 192.168.0.{2,3,4} #禁止192.168.0.2、192.168.0.3、192.168.0.4登录 

如果要设置开放时段，加入 

access_times = 9:00-12:00 13:00-17:00 # 每天只有这两个时段开放服务（我们的上班时间：P） 

如果你有两个IP地址，一个是私网的IP地址如192.168.0.2，一个是公网的IP地址如218.75.74.83，如果你希望用户只能从私网来登录telnet服务，那么加入 

bind = 192.168.0.2 

各配置项具体的含义和语法可参考xined配置文件属性说明（man xinetd.conf） 

配置端口，修改services文件：

# vi /etc/services 

找到以下两句 

telnet 23/tcp 

telnet 23/udp 

如果前面有#字符，就去掉它。telnet的默认端口是23，这个端口也是黑客端口扫描的主要对象，因此最好将这个端口修改掉，修改的方法很简单，
就是将23这个数字修改掉，改成大一点的数字，比如61123。注意，1024以下的端口号是internet保留的端口号，因此最好不要用，还应该注意不要与其它服务的端口冲突。 

启动服务：

service xinetd restart 

实例5：正常telnet

命令：

telnet 192.168.120.204

输出：

复制代码
[root@andy ~]# telnet 192.168.120.204
Trying 192.168.120.204...
Connected to 192.168.120.204 (192.168.120.204).
Escape character is '^]'.

    localhost (Linux release 2.6.18-274.18.1.el5 #1 SMP Thu Feb 9 12:45:44 EST 2012) (1)

login: root
Password: 
Login incorrect
复制代码

说明：

一般情况下不允许root从远程登录，可以先用普通账号登录，然后再用su -切到root用户。
</PRE>
<H3>rcp命令</H3>
<H4>命令说明</H4>
<PRE class="brush: bash;">rcp代表“remote file copy”（远程文件拷贝）。该命令用于在计算机之间拷贝文件。rcp命令有两种格式。第一种格式用于文件到文件的拷贝；
第二种格式用于把文件或目录拷贝到另一个目录中。

1．命令格式：

rcp [参数] [源文件] [目标文件]

2．命令功能：

rcp命令用在远端复制文件或目录，如同时指定两个以上的文件或目录，且最后的目的地是一个已经存在的目录，则它会把前面指定的所有文件或目录复制到该目录中。

3．命令参数：

各选项含义：

-r 递归地把源目录中的所有内容拷贝到目的目录中。要使用这个选项，目的必须是一个目录。

-p 试图保留源文件的修改时间和模式，忽略umask。

-k 请求rcp获得在指定区域内的远程主机的Kerberos 许可，而不是获得由krb_relmofhost⑶确定的远程主机区域内的远程主机的Kerberos许可。

-x 为传送的所有数据打开DES加密。这会影响响应时间和CPU利用率，但是可以提高安全性。如果在文件名中指定的路径不是完整的路径名，那么这个路径被解释为
相对远程机上同名用户的主目录。如果没有给出远程用户名，就使用当前用户名。如果远程机上的路径包含特殊shell字符，需要用反斜线（\\）、双引号（”）
或单引号（’）括起来，使所有的shell元字符都能被远程地解释。

需要说明的是，rcp不提示输入口令，它通过rsh命令来执行拷贝。

directory 每个文件或目录参数既可以是远程文件名也可以是本地文件名。远程文件名具有如下形式：rname@rhost：path，其中rname是远程用户名，rhost是远程计算机名，path是这个文件的路径。
</PRE>
<H4>使用实例</H4>
<PRE class="brush: bash;">要使用 rcp，需要具备以下条件：

如果系统中有 /etc/hosts 文件，系统管理员应确保该文件包含要与之进行通信的远程主机的项。

/etc/hosts 文件中有一行文字，其中包含每个远程系统的以下信息：

internet_address   official_name   alias

例如：

9.186.10.***  webserver1.com.58.webserver

.rhosts 文件

.rhosts 文件位于远程系统的主目录下，其中包含本地系统的名称和本地登录名。

例如，远程系统的 .rhosts 文件中的项可能是：

webserver1 root

其中，webserver1 是本地系统的名称，root 是本地登录名。这样，webserver1 上的 root 即可在包含 .rhosts 文件的远程系统中来回复制文件。

配置过程:

只对root用户生效

1. 在双方root用户根目录下建立.rhosts文件,并将双方的hostname加进去.在此之前应在双方的 /etc/hosts文件中加入对方的IP和hostname

2. 把rsh服务启动起来,redhat默认是不启动的。

方法：用执行ntsysv命令,在rsh选项前用空格键选中,确定退出。然后执行：

service xinetd restart即可。

3. 到/etc/pam.d/目录下,把rsh文件中的auth required /lib/security/pam_securetty.so

一行用“#”注释掉即可。（只有注释掉这一行，才能用root用户登录）

命令使用:

将文件复制到远程系统

要将本地系统中的文件复制到远程系统，请使用以下命令：

rcplocal_fileremote_hostname:remote_fileEnter

注意，如果当前目录下没有 local_file，则除本地文件名外，还需要提供相对路径（自当前目录开始）或绝对路径名（自 / 开始）。

仅当希望将 remote_hostname 上的 remote_file 放到其他目录（远程主目录除外）下时，才需要为其指定完整的（绝对）路径。

使用实例1:将当前目录下的 test1 复制到名为 webserver1的远程系统

命令：

rcp test1 webserver1:/home/root/test3

说明：

在这种情况下，test1 被复制到远程子目录 test3下，名称仍为 test1 。如果仅提供了远程主机名，rcp 将把 test1 复制到远程主目录下，名称仍为 test1 。

还可以在目的目录中包含文件名。例如，将文件复制到名为 webserver1的系统中：

rcp test1 webserver1:/home/root/test3

在这种情况下，将 test1 复制到远程目录root 下并将其命名为 test3。

使用实例2：从远程系统复制文件：要将远程系统中的文件复制到本地目录下

命令：

rcp remote_hostname:remote_file local_fileEnter

使用实例:3:将远程系统 webserver1中的 test2 复制到当前目录：

命令：

rcp webserver1:/home/root/test2 .Enter

说明：

点 (.) 是“当前目录”的简写形式。在这种情况下，远程目录中的 test2 被复制到当前目录下，名称仍为 test2 。

如果希望用新名称复制文件，请提供目标文件名。

如果希望将 test2 复制到本地系统中的其他目录下，请使用以下绝对或相对路径名：

rcp webserver1:/home/root/test2 otherdir/ Enter

或者，如果希望用其他文件名将文件复制到其他目录下：

rcp webserver1:/home/root/test2 otherdir/otherfile Enter

使用实例4：将目录复制到远程系统：要将本地目录及其文件和子目录复制到远程系统，请同时使用 rcp 和 -r（递归）选项。

命令：

rcp –r local_dir remote_hostname:remote_dir Enter

说明：

如果当前目录下没有 local_dir，则除本地目录名外，还需要提供相对路径名（自当前目录开始）或绝对路径名（自 / 顶级目录开始）。另外，如果主目录下没有 remote_dir，
则 remote_dir 将需要一个相对路径（自主目录开始）或绝对路径（自 / 开始）。

使用实例5:

要将名为 work 的子目录完整地复制到 webserver1远程计算机中的主目录下名为 products 的目录，请键入以下内容：

rcp –r work webserver1:/home/root/products Enter

此命令在 webserver1:/home/root/products 下创建名为 work 的目录及其全部内容（假定 /home/root/products 已存在于 webserver1中）。

本示例假定用户处于包含 work 的本地目录下。否则，必须提供该目录的相对或绝对路径，如 /home/root/work。

使用实例6：从远程系统复制目录：

要将远程目录及其所有文件和子目录复制到本地目录，请在以下语法中使用 rcp 和 -r（递归）选项。

命令：

rcp –r remote_hostname:remote_dir local_dir Enter

要将名为 work 的远程目录复制到当前目录，请键入以下内容：

rcp –r webserver1:/home/root/work .Enter

点 (.) 表示当前目录。将在此目录下创建 work 目录。
</PRE>
<HR style="border-width: 2px; border-color: lime;">

<DIV align="center">©copyright 2013 ~ 2015 作者：zzy</DIV>
<SCRIPT src="../../pub/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></SCRIPT>
 
<SCRIPT src="../../pub/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></SCRIPT>
	
<SCRIPT src="../../pub/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></SCRIPT>
 
<SCRIPT src="../../pub/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></SCRIPT>
 
<SCRIPT src="../../pub/syntaxhighlighter/scripts/shBrushSql.js" type="text/javascript"></SCRIPT>
 
<SCRIPT src="../../pub/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></SCRIPT>
	
<SCRIPT src="../../pub/syntaxhighlighter/init.js" type="text/javascript"></SCRIPT>
 
<SCRIPT src="../../pub/js/jquery.tools.min.js" type="text/javascript"></SCRIPT>
 <!-- make all links with the 'rel' attribute open overlays --> 
<SCRIPT>
  $(function() {
      $("#apple img[rel]").overlay({effect: 'apple'});
    });
</SCRIPT>
 </DIV></BODY></HTML>
